//
//  Person.h
//  Ios 新特性 （Nullability,泛型，——kindof）
//
//  Created by dllo on 16/7/13.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN
@interface Person : NSObject
// Nullability （只能对象类型上）是在编译层次上加了一些改动
//nonull 声明的属性， 不能为空(getter和setter方法)
//@property (nonnull ,nonatomic, copy) NSString *name;

//__nonnull 在声明属性的类型 加————nonnull

@property (nonatomic, copy) NSString *__nonnull name;

// nullable 声明的属性 可以为空(getter和setter方法)
//@property  (nullable,nonatomic, copy) NSString *sex;

// __nullable 在声明属性类型后加 __nullable
@property (nonatomic, copy) NSString *__nullable sex;


//不可以像下面这样做
//@property (nonnull,nonatomic,assign) NSInteger num;


// null_resetable    声明属性，setter可以为空    getter 不能为空
// 举例 UIViewController 中view 的属性
@property (null_resettable, nonatomic, strong) NSArray *friends;

@property (nonatomic, strong) NSDictionary *dic;

//NS_ASSUME_NONNULL_BEGIN   NS_ASSUME_NONNULL_END
// 一般应用于头文件.h  一般声明包含起来
// 针对所有属性， 添加nonull  修饰
// 也就是说  除了 nullable 和null_resetable 需要加修饰， 其他不需要







@end
NS_ASSUME_NONNULL_END